[INFO] cloning repository https://github.com/mcthouacbb/Calamity
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mcthouacbb/Calamity" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmcthouacbb%2FCalamity", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmcthouacbb%2FCalamity'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e86b5cb1216a0a3eb67f6b461e0a67cf99b0dd96
[INFO] testing mcthouacbb/Calamity against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmcthouacbb%2FCalamity" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mcthouacbb/Calamity
[INFO] finished tweaking git repo https://github.com/mcthouacbb/Calamity
[INFO] tweaked toml for git repo https://github.com/mcthouacbb/Calamity written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mcthouacbb/Calamity on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mcthouacbb/Calamity already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8cda20f519761c711845c7fddb0e8b5f36b63803cda556578602ec9f30656b3e
[INFO] running `Command { std: "docker" "start" "-a" "8cda20f519761c711845c7fddb0e8b5f36b63803cda556578602ec9f30656b3e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8cda20f519761c711845c7fddb0e8b5f36b63803cda556578602ec9f30656b3e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8cda20f519761c711845c7fddb0e8b5f36b63803cda556578602ec9f30656b3e", kill_on_drop: false }`
[INFO] [stdout] 8cda20f519761c711845c7fddb0e8b5f36b63803cda556578602ec9f30656b3e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5dfd0c271af6f25b4dad6e3b87947e74c2c3087c96b5f2d4157e97aa320396f4
[INFO] running `Command { std: "docker" "start" "-a" "5dfd0c271af6f25b4dad6e3b87947e74c2c3087c96b5f2d4157e97aa320396f4", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling getrandom v0.3.2
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.1
[INFO] [stderr]    Compiling calamity v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Color` and `Piece`
[INFO] [stdout]  --> src/games/three_check/see.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Bitboard, Color, Move, MoveKind, Piece, PieceType, ThreeCheckState, attacks};
[INFO] [stdout]   |                       ^^^^^                  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CopyMakeWrapper`
[INFO] [stdout]   --> src/games/three_check.rs:16:42
[INFO] [stdout]    |
[INFO] [stdout] 16 | use super::board::{Board, CopyMakeBoard, CopyMakeWrapper, GameResult};
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hash_combine`
[INFO] [stdout]  --> src/util/mod.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use hash::{hash_combine, murmur_hash3};
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ThreeCheckState`, `connect4::Connect4Board`, `hexapawn::HexapawnBoard`, and `tictactoe::TicTacToeBoard`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     connect4::Connect4Board,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     hexapawn::HexapawnBoard,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     three_check::{self, Color, ThreeCheckBoard, ThreeCheckState},
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     tictactoe::TicTacToeBoard,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `C4Benchmark`, `ab_solver::ABSolver`, and `run_benchmark`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     ab_solver::ABSolver,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     c4_solver::{C4Benchmark, run_benchmark},
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `util::Square`
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use util::Square;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CopyMakeBoard`
[INFO] [stdout]   --> src/games/three_check.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use super::board::{Board, CopyMakeBoard, CopyMakeWrapper, GameResult};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_random_move` is never used
[INFO] [stdout]   --> src/main.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn select_random_move(board: &ThreeCheckBoard) -> three_check::Move {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `piece_value` is never used
[INFO] [stdout]   --> src/eval/three_check.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn piece_value(pt: PieceType) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AtaxxSquare` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type AtaxxSquare = Square<7, 7>;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtaxxMove` is never constructed
[INFO] [stdout]   --> src/games/ataxx.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct AtaxxMove {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/games/ataxx.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl AtaxxMove {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 19 |     pub fn null() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn single(sq: AtaxxSquare) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn double(from: AtaxxSquare, to: AtaxxSquare) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn from_sq_raw(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn to_sq_raw(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn from_sq(&self) -> AtaxxSquare {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn to_sq(&self) -> AtaxxSquare {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn is_null(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn is_single(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AtaxxColor` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:60:10
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub enum AtaxxColor {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flip` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl AtaxxColor {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 66 |     pub fn flip(self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AtaxxPiece` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:75:10
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub enum AtaxxPiece {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `single_moves` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:81:10
[INFO] [stdout]    |
[INFO] [stdout] 81 | const fn single_moves(pieces: Bitboard<7, 7>) -> Bitboard<7, 7> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ADJACENT_SQUARES` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:87:7
[INFO] [stdout]    |
[INFO] [stdout] 87 | const ADJACENT_SQUARES: [Bitboard<7, 7>; 49] = {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOUBLE_MOVES` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:98:7
[INFO] [stdout]    |
[INFO] [stdout] 98 | const DOUBLE_MOVES: [Bitboard<7, 7>; 49] = {
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtaxxState` is never constructed
[INFO] [stdout]    --> src/games/ataxx.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct AtaxxState {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pieces`, `pieces_mut`, and `occ` are never used
[INFO] [stdout]    --> src/games/ataxx.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl AtaxxState {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 132 |     pub fn pieces(&self, c: AtaxxColor) -> Bitboard<7, 7> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn pieces_mut(&mut self, c: AtaxxColor) -> &mut Bitboard<7, 7> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn occ(&self) -> Bitboard<7, 7> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AtaxxBoard` is never used
[INFO] [stdout]    --> src/games/ataxx.rs:335:10
[INFO] [stdout]     |
[INFO] [stdout] 335 | pub type AtaxxBoard = CopyMakeWrapper<AtaxxState>;
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GameResult` is never used
[INFO] [stdout]  --> src/games/board.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum GameResult {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `game_result` is never used
[INFO] [stdout]   --> src/games/board.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Board: Sized + Clone {
[INFO] [stdout]    |           ----- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn game_result(&self) -> GameResult;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CopyMakeBoard` is never used
[INFO] [stdout]   --> src/games/board.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub trait CopyMakeBoard: Sized + Clone {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CopyMakeWrapper` is never constructed
[INFO] [stdout]   --> src/games/board.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct CopyMakeWrapper<T>
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `curr_state` and `curr_state_mut` are never used
[INFO] [stdout]   --> src/games/board.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | / impl<T> CopyMakeWrapper<T>
[INFO] [stdout] 58 | | where
[INFO] [stdout] 59 | |     T: CopyMakeBoard,
[INFO] [stdout]    | |_____________________- methods in this implementation
[INFO] [stdout] 60 |   {
[INFO] [stdout] 61 |       pub fn curr_state(&self) -> &T {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |       fn curr_state_mut(&mut self) -> &mut T {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connect4Move` is never constructed
[INFO] [stdout]   --> src/games/connect4.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Connect4Move(Connect4Square);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `sq` is never used
[INFO] [stdout]   --> src/games/connect4.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Connect4Move {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 20 |     pub fn sq(&self) -> Connect4Square {
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Connect4Color` is never used
[INFO] [stdout]   --> src/games/connect4.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Connect4Color {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flip` is never used
[INFO] [stdout]   --> src/games/connect4.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl Connect4Color {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 32 |     pub fn flip(self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connect4State` is never constructed
[INFO] [stdout]   --> src/games/connect4.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct Connect4State {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/games/connect4.rs:47:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl Connect4State {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  47 |     pub fn pieces(&self, c: Connect4Color) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn stm(&self) -> Connect4Color {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn occ(&self) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn above_pieces(&self) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn move_locations(&self) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn move_locations_after(&self, mv: Connect4Move) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn key(&self) -> u64 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn our_threats(&self) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn their_threats(&self) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn our_threats_after(&self, mv: Connect4Move) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     fn compute_threats(pieces: Connect4Bitboard, occ: Connect4Bitboard) -> Connect4Bitboard {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn is_loss(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Connect4Board` is never used
[INFO] [stdout]    --> src/games/connect4.rs:258:10
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub type Connect4Board = CopyMakeWrapper<Connect4State>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connect4Bitboard` is never constructed
[INFO] [stdout]  --> src/games/connect4/bitboard.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Connect4Bitboard(Bitboard<7, 7>);
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/games/connect4/bitboard.rs:12:15
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl Connect4Bitboard {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  12 |     pub const NONE: Self = Self(Bitboard::NONE);
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]  13 |     pub const VALID: Self = Self::row(0)
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  20 |     pub const fn from_raw(value: u64) -> Self {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub const fn column(file: u8) -> Self {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub const fn row(rank: u8) -> Self {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  32 |     pub const fn from_square(sq: Connect4Square) -> Self {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub const fn value(self) -> u64 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     pub const fn north(self) -> Self {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub const fn south(self) -> Self {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub const fn east(self) -> Self {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub const fn west(self) -> Self {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub const fn lsb(self) -> Connect4Square {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub const fn msb(self) -> Connect4Square {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub const fn popcount(self) -> u32 {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn poplsb(&mut self) -> Connect4Square {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub const fn any(self) -> bool {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub const fn empty(self) -> bool {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub const fn multiple(self) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub const fn one(self) -> bool {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn set(&mut self, sq: Connect4Square) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn toggle(&mut self, sq: Connect4Square) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn unset(&mut self, sq: Connect4Square) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub const fn has(self, sq: Connect4Square) -> bool {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub const fn bit_and(self, rhs: Self) -> Self {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub const fn bit_or(self, rhs: Self) -> Self {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub const fn bit_xor(self, rhs: Self) -> Self {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub const fn bit_not(self) -> Self {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connect4Square` is never constructed
[INFO] [stdout]  --> src/games/connect4/square.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Connect4Square(Square<7, 7>);
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/games/connect4/square.rs:7:18
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Connect4Square {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout]  7 |     pub const fn from_row_column(row: u8, column: u8) -> Self {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub const fn from_util_sq(sq: Square<7, 7>) -> Self {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub const fn from_raw(sq: u16) -> Self {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub const fn to_util_sq(self) -> Square<7, 7> {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub const fn value(self) -> u16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub const fn row(self) -> u8 {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub const fn column(self) -> u8 {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HexapawnSquare` is never used
[INFO] [stdout]   --> src/games/hexapawn.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type HexapawnSquare = Square<3, 3>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HexapawnMove` is never constructed
[INFO] [stdout]   --> src/games/hexapawn.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct HexapawnMove {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HexapawnColor` is never used
[INFO] [stdout]   --> src/games/hexapawn.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum HexapawnColor {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flip` is never used
[INFO] [stdout]   --> src/games/hexapawn.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl HexapawnColor {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 26 |     pub fn flip(self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HexapawnState` is never constructed
[INFO] [stdout]   --> src/games/hexapawn.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct HexapawnState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HexapawnBoard` is never used
[INFO] [stdout]    --> src/games/hexapawn.rs:195:10
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub type HexapawnBoard = CopyMakeWrapper<HexapawnState>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TicTacToeSquare` is never used
[INFO] [stdout]   --> src/games/tictactoe.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type TicTacToeSquare = Square<3, 3>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TicTacToeMove` is never constructed
[INFO] [stdout]   --> src/games/tictactoe.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct TicTacToeMove(TicTacToeSquare);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `to_sq` are never used
[INFO] [stdout]   --> src/games/tictactoe.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl TicTacToeMove {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(sq: TicTacToeSquare) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn to_sq(self) -> TicTacToeSquare {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TicTacToeColor` is never used
[INFO] [stdout]   --> src/games/tictactoe.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum TicTacToeColor {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flip` is never used
[INFO] [stdout]   --> src/games/tictactoe.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl TicTacToeColor {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] 34 |     pub fn flip(self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Piece` is never used
[INFO] [stdout]   --> src/games/tictactoe.rs:42:6
[INFO] [stdout]    |
[INFO] [stdout] 42 | type Piece = TicTacToeColor;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TicTacToeState` is never constructed
[INFO] [stdout]   --> src/games/tictactoe.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct TicTacToeState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TicTacToeBoard` is never used
[INFO] [stdout]    --> src/games/tictactoe.rs:167:10
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub type TicTacToeBoard = CopyMakeWrapper<TicTacToeState>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perft` is never used
[INFO] [stdout]  --> src/perft.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn perft<const SPLIT: bool, B: Board>(board: &mut B, depth: u32) -> u64 {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perft_impl` is never used
[INFO] [stdout]   --> src/perft.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn perft_impl<B: Board>(board: &mut B, depth: u32) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_perft_suite_file` is never used
[INFO] [stdout]   --> src/perft.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn run_perft_suite_file<B: Board>(filename: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_perft_suite` is never used
[INFO] [stdout]   --> src/perft.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn run_perft_suite<B: Board>(tests: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ABSolver` is never constructed
[INFO] [stdout]  --> src/search/ab_solver.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ABSolver<B: Board> {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SCORE_WIN`, `new`, and `alpha_beta` are never used
[INFO] [stdout]   --> src/search/ab_solver.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<B: Board> ABSolver<B> {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 13 |     const SCORE_WIN: i32 = 1000;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 14 |
[INFO] [stdout] 15 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn alpha_beta(&mut self, board: &mut B, ply: i32, mut alpha: i32, beta: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `C4TTEntry` is never constructed
[INFO] [stdout]   --> src/search/c4_solver.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct C4TTEntry {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `adjust_from_tt` and `to_tt` are never used
[INFO] [stdout]   --> src/search/c4_solver.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl C4TTEntry {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 24 |     fn adjust_from_tt(&mut self, ply: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn to_tt(&self, ply: i32) -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connect4Solver` is never constructed
[INFO] [stdout]   --> src/search/c4_solver.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Connect4Solver {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SCORE_WIN`, `new`, `score_move`, `order_moves`, `alpha_beta`, and `clear` are never used
[INFO] [stdout]    --> src/search/c4_solver.rs:49:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl Connect4Solver {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  49 |     const SCORE_WIN: i32 = 1000;
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout]  50 |
[INFO] [stdout]  51 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     fn score_move(&mut self, board: &mut Connect4Board, mv: Connect4Move) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn order_moves(&mut self, board: &mut Connect4Board, moves: &mut ArrayVec<Connect4Move, 7>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn alpha_beta<const PV: bool>(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `C4Benchmark` is never used
[INFO] [stdout]    --> src/search/c4_solver.rs:217:10
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub enum C4Benchmark {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_benchmark` is never used
[INFO] [stdout]    --> src/search/c4_solver.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn run_benchmark(benchmark: C4Benchmark) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nodes`, `time`, `score`, and `pv` are never read
[INFO] [stdout]   --> src/search/search.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct SearchResult<B: Board> {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout]  7 |     pub nodes: u64,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]  8 |     pub time: Duration,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]  9 |     pub best_move: B::Move,
[INFO] [stdout] 10 |     pub score: i32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 11 |     pub pv: Vec<B::Move>,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SearchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_nodes` is never read
[INFO] [stdout]   --> src/search/search.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct SearchLimits {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 16 |     pub max_nodes: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SearchLimits` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/search/search.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub trait Search<B: Board> {
[INFO] [stdout]    |           ------ method in this trait
[INFO] [stdout] 22 |     fn search(&mut self, board: &B, limits: SearchLimits) -> SearchResult<B>;
[INFO] [stdout] 23 |     fn clear(&mut self) {}
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `adjust_from_tt` and `to_tt` are never used
[INFO] [stdout]   --> src/search/three_check.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl TTEntry {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 29 |     fn adjust_from_tt(&mut self, ply: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     fn to_tt(&self, ply: i32) -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decisive_score_from_tt` is never used
[INFO] [stdout]   --> src/search/tt.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn decisive_score_from_tt(score: i32, ply: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decisive_score_to_tt` is never used
[INFO] [stdout]   --> src/search/tt.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn decisive_score_to_tt(score: i32, ply: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_fen_pieces` is never used
[INFO] [stdout]  --> src/util/fen_parsing.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn parse_fen_pieces<Piece, F>(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `murmur_hash3` is never used
[INFO] [stdout]  --> src/util/hash.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const fn murmur_hash3(mut key: u64) -> u64 {
[INFO] [stdout]   |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_combine` is never used
[INFO] [stdout]   --> src/util/hash.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const fn hash_combine(lhs: u64, rhs: u64) -> u64 {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.31s
[INFO] running `Command { std: "docker" "inspect" "5dfd0c271af6f25b4dad6e3b87947e74c2c3087c96b5f2d4157e97aa320396f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5dfd0c271af6f25b4dad6e3b87947e74c2c3087c96b5f2d4157e97aa320396f4", kill_on_drop: false }`
[INFO] [stdout] 5dfd0c271af6f25b4dad6e3b87947e74c2c3087c96b5f2d4157e97aa320396f4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f6cee5631679f43189ed5f74148dccf5a27ddd5f5d2ad15af1eba9cc8d1eac89
[INFO] running `Command { std: "docker" "start" "-a" "f6cee5631679f43189ed5f74148dccf5a27ddd5f5d2ad15af1eba9cc8d1eac89", kill_on_drop: false }`
[INFO] [stderr]    Compiling calamity v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Color` and `Piece`
[INFO] [stdout]  --> src/games/three_check/see.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Bitboard, Color, Move, MoveKind, Piece, PieceType, ThreeCheckState, attacks};
[INFO] [stdout]   |                       ^^^^^                  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CopyMakeWrapper`
[INFO] [stdout]   --> src/games/three_check.rs:16:42
[INFO] [stdout]    |
[INFO] [stdout] 16 | use super::board::{Board, CopyMakeBoard, CopyMakeWrapper, GameResult};
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hash_combine`
[INFO] [stdout]  --> src/util/mod.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use hash::{hash_combine, murmur_hash3};
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ThreeCheckState`, `connect4::Connect4Board`, `hexapawn::HexapawnBoard`, and `tictactoe::TicTacToeBoard`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     connect4::Connect4Board,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     hexapawn::HexapawnBoard,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     three_check::{self, Color, ThreeCheckBoard, ThreeCheckState},
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     tictactoe::TicTacToeBoard,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `C4Benchmark`, `ab_solver::ABSolver`, and `run_benchmark`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     ab_solver::ABSolver,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     c4_solver::{C4Benchmark, run_benchmark},
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `util::Square`
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use util::Square;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CopyMakeBoard`
[INFO] [stdout]   --> src/games/three_check.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use super::board::{Board, CopyMakeBoard, CopyMakeWrapper, GameResult};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_random_move` is never used
[INFO] [stdout]   --> src/main.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn select_random_move(board: &ThreeCheckBoard) -> three_check::Move {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `piece_value` is never used
[INFO] [stdout]   --> src/eval/three_check.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn piece_value(pt: PieceType) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AtaxxSquare` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type AtaxxSquare = Square<7, 7>;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtaxxMove` is never constructed
[INFO] [stdout]   --> src/games/ataxx.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct AtaxxMove {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/games/ataxx.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl AtaxxMove {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 19 |     pub fn null() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn single(sq: AtaxxSquare) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn double(from: AtaxxSquare, to: AtaxxSquare) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn from_sq_raw(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn to_sq_raw(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn from_sq(&self) -> AtaxxSquare {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn to_sq(&self) -> AtaxxSquare {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn is_null(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn is_single(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AtaxxColor` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:60:10
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub enum AtaxxColor {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flip` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl AtaxxColor {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 66 |     pub fn flip(self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AtaxxPiece` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:75:10
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub enum AtaxxPiece {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `single_moves` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:81:10
[INFO] [stdout]    |
[INFO] [stdout] 81 | const fn single_moves(pieces: Bitboard<7, 7>) -> Bitboard<7, 7> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ADJACENT_SQUARES` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:87:7
[INFO] [stdout]    |
[INFO] [stdout] 87 | const ADJACENT_SQUARES: [Bitboard<7, 7>; 49] = {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOUBLE_MOVES` is never used
[INFO] [stdout]   --> src/games/ataxx.rs:98:7
[INFO] [stdout]    |
[INFO] [stdout] 98 | const DOUBLE_MOVES: [Bitboard<7, 7>; 49] = {
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtaxxState` is never constructed
[INFO] [stdout]    --> src/games/ataxx.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct AtaxxState {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pieces`, `pieces_mut`, and `occ` are never used
[INFO] [stdout]    --> src/games/ataxx.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl AtaxxState {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 132 |     pub fn pieces(&self, c: AtaxxColor) -> Bitboard<7, 7> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn pieces_mut(&mut self, c: AtaxxColor) -> &mut Bitboard<7, 7> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn occ(&self) -> Bitboard<7, 7> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AtaxxBoard` is never used
[INFO] [stdout]    --> src/games/ataxx.rs:335:10
[INFO] [stdout]     |
[INFO] [stdout] 335 | pub type AtaxxBoard = CopyMakeWrapper<AtaxxState>;
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GameResult` is never used
[INFO] [stdout]  --> src/games/board.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum GameResult {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `game_result` is never used
[INFO] [stdout]   --> src/games/board.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Board: Sized + Clone {
[INFO] [stdout]    |           ----- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn game_result(&self) -> GameResult;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CopyMakeBoard` is never used
[INFO] [stdout]   --> src/games/board.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub trait CopyMakeBoard: Sized + Clone {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CopyMakeWrapper` is never constructed
[INFO] [stdout]   --> src/games/board.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct CopyMakeWrapper<T>
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `curr_state` and `curr_state_mut` are never used
[INFO] [stdout]   --> src/games/board.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | / impl<T> CopyMakeWrapper<T>
[INFO] [stdout] 58 | | where
[INFO] [stdout] 59 | |     T: CopyMakeBoard,
[INFO] [stdout]    | |_____________________- methods in this implementation
[INFO] [stdout] 60 |   {
[INFO] [stdout] 61 |       pub fn curr_state(&self) -> &T {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |       fn curr_state_mut(&mut self) -> &mut T {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connect4Move` is never constructed
[INFO] [stdout]   --> src/games/connect4.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Connect4Move(Connect4Square);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `sq` is never used
[INFO] [stdout]   --> src/games/connect4.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Connect4Move {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 20 |     pub fn sq(&self) -> Connect4Square {
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Connect4Color` is never used
[INFO] [stdout]   --> src/games/connect4.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Connect4Color {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flip` is never used
[INFO] [stdout]   --> src/games/connect4.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl Connect4Color {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 32 |     pub fn flip(self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connect4State` is never constructed
[INFO] [stdout]   --> src/games/connect4.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct Connect4State {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/games/connect4.rs:47:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl Connect4State {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  47 |     pub fn pieces(&self, c: Connect4Color) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn stm(&self) -> Connect4Color {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn occ(&self) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn above_pieces(&self) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn move_locations(&self) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn move_locations_after(&self, mv: Connect4Move) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn key(&self) -> u64 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn our_threats(&self) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn their_threats(&self) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn our_threats_after(&self, mv: Connect4Move) -> Connect4Bitboard {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     fn compute_threats(pieces: Connect4Bitboard, occ: Connect4Bitboard) -> Connect4Bitboard {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn is_loss(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Connect4Board` is never used
[INFO] [stdout]    --> src/games/connect4.rs:258:10
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub type Connect4Board = CopyMakeWrapper<Connect4State>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connect4Bitboard` is never constructed
[INFO] [stdout]  --> src/games/connect4/bitboard.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Connect4Bitboard(Bitboard<7, 7>);
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/games/connect4/bitboard.rs:12:15
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl Connect4Bitboard {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  12 |     pub const NONE: Self = Self(Bitboard::NONE);
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]  13 |     pub const VALID: Self = Self::row(0)
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  20 |     pub const fn from_raw(value: u64) -> Self {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub const fn column(file: u8) -> Self {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub const fn row(rank: u8) -> Self {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  32 |     pub const fn from_square(sq: Connect4Square) -> Self {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub const fn value(self) -> u64 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     pub const fn north(self) -> Self {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub const fn south(self) -> Self {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub const fn east(self) -> Self {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub const fn west(self) -> Self {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub const fn lsb(self) -> Connect4Square {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub const fn msb(self) -> Connect4Square {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub const fn popcount(self) -> u32 {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn poplsb(&mut self) -> Connect4Square {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub const fn any(self) -> bool {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub const fn empty(self) -> bool {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub const fn multiple(self) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub const fn one(self) -> bool {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn set(&mut self, sq: Connect4Square) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn toggle(&mut self, sq: Connect4Square) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn unset(&mut self, sq: Connect4Square) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub const fn has(self, sq: Connect4Square) -> bool {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub const fn bit_and(self, rhs: Self) -> Self {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub const fn bit_or(self, rhs: Self) -> Self {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub const fn bit_xor(self, rhs: Self) -> Self {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub const fn bit_not(self) -> Self {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connect4Square` is never constructed
[INFO] [stdout]  --> src/games/connect4/square.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Connect4Square(Square<7, 7>);
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/games/connect4/square.rs:7:18
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Connect4Square {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout]  7 |     pub const fn from_row_column(row: u8, column: u8) -> Self {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub const fn from_util_sq(sq: Square<7, 7>) -> Self {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub const fn from_raw(sq: u16) -> Self {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub const fn to_util_sq(self) -> Square<7, 7> {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub const fn value(self) -> u16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub const fn row(self) -> u8 {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub const fn column(self) -> u8 {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HexapawnSquare` is never used
[INFO] [stdout]   --> src/games/hexapawn.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type HexapawnSquare = Square<3, 3>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HexapawnMove` is never constructed
[INFO] [stdout]   --> src/games/hexapawn.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct HexapawnMove {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HexapawnColor` is never used
[INFO] [stdout]   --> src/games/hexapawn.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum HexapawnColor {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flip` is never used
[INFO] [stdout]   --> src/games/hexapawn.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl HexapawnColor {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 26 |     pub fn flip(self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HexapawnState` is never constructed
[INFO] [stdout]   --> src/games/hexapawn.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct HexapawnState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HexapawnBoard` is never used
[INFO] [stdout]    --> src/games/hexapawn.rs:195:10
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub type HexapawnBoard = CopyMakeWrapper<HexapawnState>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TicTacToeSquare` is never used
[INFO] [stdout]   --> src/games/tictactoe.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type TicTacToeSquare = Square<3, 3>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TicTacToeMove` is never constructed
[INFO] [stdout]   --> src/games/tictactoe.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct TicTacToeMove(TicTacToeSquare);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `to_sq` are never used
[INFO] [stdout]   --> src/games/tictactoe.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl TicTacToeMove {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(sq: TicTacToeSquare) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn to_sq(self) -> TicTacToeSquare {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TicTacToeColor` is never used
[INFO] [stdout]   --> src/games/tictactoe.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum TicTacToeColor {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flip` is never used
[INFO] [stdout]   --> src/games/tictactoe.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl TicTacToeColor {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] 34 |     pub fn flip(self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Piece` is never used
[INFO] [stdout]   --> src/games/tictactoe.rs:42:6
[INFO] [stdout]    |
[INFO] [stdout] 42 | type Piece = TicTacToeColor;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TicTacToeState` is never constructed
[INFO] [stdout]   --> src/games/tictactoe.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct TicTacToeState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TicTacToeBoard` is never used
[INFO] [stdout]    --> src/games/tictactoe.rs:167:10
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub type TicTacToeBoard = CopyMakeWrapper<TicTacToeState>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perft` is never used
[INFO] [stdout]  --> src/perft.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn perft<const SPLIT: bool, B: Board>(board: &mut B, depth: u32) -> u64 {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perft_impl` is never used
[INFO] [stdout]   --> src/perft.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn perft_impl<B: Board>(board: &mut B, depth: u32) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_perft_suite_file` is never used
[INFO] [stdout]   --> src/perft.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn run_perft_suite_file<B: Board>(filename: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_perft_suite` is never used
[INFO] [stdout]   --> src/perft.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn run_perft_suite<B: Board>(tests: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ABSolver` is never constructed
[INFO] [stdout]  --> src/search/ab_solver.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ABSolver<B: Board> {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SCORE_WIN`, `new`, and `alpha_beta` are never used
[INFO] [stdout]   --> src/search/ab_solver.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<B: Board> ABSolver<B> {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 13 |     const SCORE_WIN: i32 = 1000;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 14 |
[INFO] [stdout] 15 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn alpha_beta(&mut self, board: &mut B, ply: i32, mut alpha: i32, beta: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `C4TTEntry` is never constructed
[INFO] [stdout]   --> src/search/c4_solver.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct C4TTEntry {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `adjust_from_tt` and `to_tt` are never used
[INFO] [stdout]   --> src/search/c4_solver.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl C4TTEntry {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 24 |     fn adjust_from_tt(&mut self, ply: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn to_tt(&self, ply: i32) -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connect4Solver` is never constructed
[INFO] [stdout]   --> src/search/c4_solver.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Connect4Solver {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SCORE_WIN`, `new`, `score_move`, `order_moves`, `alpha_beta`, and `clear` are never used
[INFO] [stdout]    --> src/search/c4_solver.rs:49:11
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl Connect4Solver {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  49 |     const SCORE_WIN: i32 = 1000;
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout]  50 |
[INFO] [stdout]  51 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     fn score_move(&mut self, board: &mut Connect4Board, mv: Connect4Move) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn order_moves(&mut self, board: &mut Connect4Board, moves: &mut ArrayVec<Connect4Move, 7>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn alpha_beta<const PV: bool>(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `C4Benchmark` is never used
[INFO] [stdout]    --> src/search/c4_solver.rs:217:10
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub enum C4Benchmark {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_benchmark` is never used
[INFO] [stdout]    --> src/search/c4_solver.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn run_benchmark(benchmark: C4Benchmark) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nodes`, `time`, `score`, and `pv` are never read
[INFO] [stdout]   --> src/search/search.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct SearchResult<B: Board> {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout]  7 |     pub nodes: u64,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]  8 |     pub time: Duration,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]  9 |     pub best_move: B::Move,
[INFO] [stdout] 10 |     pub score: i32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 11 |     pub pv: Vec<B::Move>,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SearchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_nodes` is never read
[INFO] [stdout]   --> src/search/search.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct SearchLimits {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 16 |     pub max_nodes: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SearchLimits` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/search/search.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub trait Search<B: Board> {
[INFO] [stdout]    |           ------ method in this trait
[INFO] [stdout] 22 |     fn search(&mut self, board: &B, limits: SearchLimits) -> SearchResult<B>;
[INFO] [stdout] 23 |     fn clear(&mut self) {}
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `adjust_from_tt` and `to_tt` are never used
[INFO] [stdout]   --> src/search/three_check.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl TTEntry {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 29 |     fn adjust_from_tt(&mut self, ply: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     fn to_tt(&self, ply: i32) -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decisive_score_from_tt` is never used
[INFO] [stdout]   --> src/search/tt.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn decisive_score_from_tt(score: i32, ply: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decisive_score_to_tt` is never used
[INFO] [stdout]   --> src/search/tt.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn decisive_score_to_tt(score: i32, ply: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_fen_pieces` is never used
[INFO] [stdout]  --> src/util/fen_parsing.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn parse_fen_pieces<Piece, F>(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `murmur_hash3` is never used
[INFO] [stdout]  --> src/util/hash.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const fn murmur_hash3(mut key: u64) -> u64 {
[INFO] [stdout]   |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_combine` is never used
[INFO] [stdout]   --> src/util/hash.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const fn hash_combine(lhs: u64, rhs: u64) -> u64 {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.64s
[INFO] running `Command { std: "docker" "inspect" "f6cee5631679f43189ed5f74148dccf5a27ddd5f5d2ad15af1eba9cc8d1eac89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f6cee5631679f43189ed5f74148dccf5a27ddd5f5d2ad15af1eba9cc8d1eac89", kill_on_drop: false }`
[INFO] [stdout] f6cee5631679f43189ed5f74148dccf5a27ddd5f5d2ad15af1eba9cc8d1eac89
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 0b2ef36323f61a56f4c63764d762acb79a8a733a0518e2c94058989196cabf72
[INFO] running `Command { std: "docker" "start" "-a" "0b2ef36323f61a56f4c63764d762acb79a8a733a0518e2c94058989196cabf72", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `Color` and `Piece`
[INFO] [stderr]  --> src/games/three_check/see.rs:1:23
[INFO] [stderr]   |
[INFO] [stderr] 1 | use super::{Bitboard, Color, Move, MoveKind, Piece, PieceType, ThreeCheckState, attacks};
[INFO] [stderr]   |                       ^^^^^                  ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `CopyMakeWrapper`
[INFO] [stderr]   --> src/games/three_check.rs:16:42
[INFO] [stderr]    |
[INFO] [stderr] 16 | use super::board::{Board, CopyMakeBoard, CopyMakeWrapper, GameResult};
[INFO] [stderr]    |                                          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `hash_combine`
[INFO] [stderr]  --> src/util/mod.rs:8:16
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use hash::{hash_combine, murmur_hash3};
[INFO] [stderr]   |                ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ThreeCheckState`, `connect4::Connect4Board`, `hexapawn::HexapawnBoard`, and `tictactoe::TicTacToeBoard`
[INFO] [stderr]   --> src/main.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     connect4::Connect4Board,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 12 |     hexapawn::HexapawnBoard,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 13 |     three_check::{self, Color, ThreeCheckBoard, ThreeCheckState},
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^
[INFO] [stderr] 14 |     tictactoe::TicTacToeBoard,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `C4Benchmark`, `ab_solver::ABSolver`, and `run_benchmark`
[INFO] [stderr]   --> src/main.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 |     ab_solver::ABSolver,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 18 |     c4_solver::{C4Benchmark, run_benchmark},
[INFO] [stderr]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `util::Square`
[INFO] [stderr]   --> src/main.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 | use util::Square;
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `CopyMakeBoard`
[INFO] [stderr]   --> src/games/three_check.rs:16:27
[INFO] [stderr]    |
[INFO] [stderr] 16 | use super::board::{Board, CopyMakeBoard, CopyMakeWrapper, GameResult};
[INFO] [stderr]    |                           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `select_random_move` is never used
[INFO] [stderr]   --> src/main.rs:72:4
[INFO] [stderr]    |
[INFO] [stderr] 72 | fn select_random_move(board: &ThreeCheckBoard) -> three_check::Move {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `piece_value` is never used
[INFO] [stderr]   --> src/eval/three_check.rs:72:8
[INFO] [stderr]    |
[INFO] [stderr] 72 | pub fn piece_value(pt: PieceType) -> i32 {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `AtaxxSquare` is never used
[INFO] [stderr]   --> src/games/ataxx.rs:11:10
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub type AtaxxSquare = Square<7, 7>;
[INFO] [stderr]    |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AtaxxMove` is never constructed
[INFO] [stderr]   --> src/games/ataxx.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct AtaxxMove {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]   --> src/games/ataxx.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl AtaxxMove {
[INFO] [stderr]    | -------------- associated items in this implementation
[INFO] [stderr] 19 |     pub fn null() -> Self {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     pub fn single(sq: AtaxxSquare) -> Self {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub fn double(from: AtaxxSquare, to: AtaxxSquare) -> Self {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 34 |     fn from_sq_raw(&self) -> u16 {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 38 |     fn to_sq_raw(&self) -> u16 {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub fn from_sq(&self) -> AtaxxSquare {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 46 |     pub fn to_sq(&self) -> AtaxxSquare {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub fn is_null(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn is_single(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `AtaxxColor` is never used
[INFO] [stderr]   --> src/games/ataxx.rs:60:10
[INFO] [stderr]    |
[INFO] [stderr] 60 | pub enum AtaxxColor {
[INFO] [stderr]    |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `flip` is never used
[INFO] [stderr]   --> src/games/ataxx.rs:66:12
[INFO] [stderr]    |
[INFO] [stderr] 65 | impl AtaxxColor {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] 66 |     pub fn flip(self) -> Self {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `AtaxxPiece` is never used
[INFO] [stderr]   --> src/games/ataxx.rs:75:10
[INFO] [stderr]    |
[INFO] [stderr] 75 | pub enum AtaxxPiece {
[INFO] [stderr]    |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `single_moves` is never used
[INFO] [stderr]   --> src/games/ataxx.rs:81:10
[INFO] [stderr]    |
[INFO] [stderr] 81 | const fn single_moves(pieces: Bitboard<7, 7>) -> Bitboard<7, 7> {
[INFO] [stderr]    |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ADJACENT_SQUARES` is never used
[INFO] [stderr]   --> src/games/ataxx.rs:87:7
[INFO] [stderr]    |
[INFO] [stderr] 87 | const ADJACENT_SQUARES: [Bitboard<7, 7>; 49] = {
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DOUBLE_MOVES` is never used
[INFO] [stderr]   --> src/games/ataxx.rs:98:7
[INFO] [stderr]    |
[INFO] [stderr] 98 | const DOUBLE_MOVES: [Bitboard<7, 7>; 49] = {
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AtaxxState` is never constructed
[INFO] [stderr]    --> src/games/ataxx.rs:124:12
[INFO] [stderr]     |
[INFO] [stderr] 124 | pub struct AtaxxState {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `pieces`, `pieces_mut`, and `occ` are never used
[INFO] [stderr]    --> src/games/ataxx.rs:132:12
[INFO] [stderr]     |
[INFO] [stderr] 131 | impl AtaxxState {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] 132 |     pub fn pieces(&self, c: AtaxxColor) -> Bitboard<7, 7> {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 136 |     pub fn pieces_mut(&mut self, c: AtaxxColor) -> &mut Bitboard<7, 7> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 140 |     pub fn occ(&self) -> Bitboard<7, 7> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `AtaxxBoard` is never used
[INFO] [stderr]    --> src/games/ataxx.rs:335:10
[INFO] [stderr]     |
[INFO] [stderr] 335 | pub type AtaxxBoard = CopyMakeWrapper<AtaxxState>;
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `GameResult` is never used
[INFO] [stderr]  --> src/games/board.rs:5:10
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub enum GameResult {
[INFO] [stderr]   |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `game_result` is never used
[INFO] [stderr]   --> src/games/board.rs:23:8
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub trait Board: Sized + Clone {
[INFO] [stderr]    |           ----- method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 23 |     fn game_result(&self) -> GameResult;
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `CopyMakeBoard` is never used
[INFO] [stderr]   --> src/games/board.rs:31:11
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub trait CopyMakeBoard: Sized + Clone {
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CopyMakeWrapper` is never constructed
[INFO] [stderr]   --> src/games/board.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub struct CopyMakeWrapper<T>
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `curr_state` and `curr_state_mut` are never used
[INFO] [stderr]   --> src/games/board.rs:61:12
[INFO] [stderr]    |
[INFO] [stderr] 57 | / impl<T> CopyMakeWrapper<T>
[INFO] [stderr] 58 | | where
[INFO] [stderr] 59 | |     T: CopyMakeBoard,
[INFO] [stderr]    | |_____________________- methods in this implementation
[INFO] [stderr] 60 |   {
[INFO] [stderr] 61 |       pub fn curr_state(&self) -> &T {
[INFO] [stderr]    |              ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 65 |       fn curr_state_mut(&mut self) -> &mut T {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Connect4Move` is never constructed
[INFO] [stderr]   --> src/games/connect4.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub struct Connect4Move(Connect4Square);
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `sq` is never used
[INFO] [stderr]   --> src/games/connect4.rs:20:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl Connect4Move {
[INFO] [stderr]    | ----------------- method in this implementation
[INFO] [stderr] 20 |     pub fn sq(&self) -> Connect4Square {
[INFO] [stderr]    |            ^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Connect4Color` is never used
[INFO] [stderr]   --> src/games/connect4.rs:26:10
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub enum Connect4Color {
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `flip` is never used
[INFO] [stderr]   --> src/games/connect4.rs:32:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | impl Connect4Color {
[INFO] [stderr]    | ------------------ method in this implementation
[INFO] [stderr] 32 |     pub fn flip(self) -> Self {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Connect4State` is never constructed
[INFO] [stderr]   --> src/games/connect4.rs:41:12
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub struct Connect4State {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/games/connect4.rs:47:12
[INFO] [stderr]     |
[INFO] [stderr]  46 | impl Connect4State {
[INFO] [stderr]     | ------------------ associated items in this implementation
[INFO] [stderr]  47 |     pub fn pieces(&self, c: Connect4Color) -> Connect4Bitboard {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  51 |     pub fn stm(&self) -> Connect4Color {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  55 |     pub fn occ(&self) -> Connect4Bitboard {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  59 |     pub fn above_pieces(&self) -> Connect4Bitboard {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  63 |     pub fn move_locations(&self) -> Connect4Bitboard {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  67 |     pub fn move_locations_after(&self, mv: Connect4Move) -> Connect4Bitboard {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  76 |     pub fn key(&self) -> u64 {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  80 |     pub fn our_threats(&self) -> Connect4Bitboard {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  84 |     pub fn their_threats(&self) -> Connect4Bitboard {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  88 |     pub fn our_threats_after(&self, mv: Connect4Move) -> Connect4Bitboard {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  94 |     fn compute_threats(pieces: Connect4Bitboard, occ: Connect4Bitboard) -> Connect4Bitboard {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 123 |     fn is_loss(&self) -> bool {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Connect4Board` is never used
[INFO] [stderr]    --> src/games/connect4.rs:258:10
[INFO] [stderr]     |
[INFO] [stderr] 258 | pub type Connect4Board = CopyMakeWrapper<Connect4State>;
[INFO] [stderr]     |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Connect4Bitboard` is never constructed
[INFO] [stderr]  --> src/games/connect4/bitboard.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub struct Connect4Bitboard(Bitboard<7, 7>);
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/games/connect4/bitboard.rs:12:15
[INFO] [stderr]     |
[INFO] [stderr]  11 | impl Connect4Bitboard {
[INFO] [stderr]     | --------------------- associated items in this implementation
[INFO] [stderr]  12 |     pub const NONE: Self = Self(Bitboard::NONE);
[INFO] [stderr]     |               ^^^^
[INFO] [stderr]  13 |     pub const VALID: Self = Self::row(0)
[INFO] [stderr]     |               ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  20 |     pub const fn from_raw(value: u64) -> Self {
[INFO] [stderr]     |                  ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  24 |     pub const fn column(file: u8) -> Self {
[INFO] [stderr]     |                  ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  28 |     pub const fn row(rank: u8) -> Self {
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] ...
[INFO] [stderr]  32 |     pub const fn from_square(sq: Connect4Square) -> Self {
[INFO] [stderr]     |                  ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  36 |     pub const fn value(self) -> u64 {
[INFO] [stderr]     |                  ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  41 |     pub const fn north(self) -> Self {
[INFO] [stderr]     |                  ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  46 |     pub const fn south(self) -> Self {
[INFO] [stderr]     |                  ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  50 |     pub const fn east(self) -> Self {
[INFO] [stderr]     |                  ^^^^
[INFO] [stderr] ...
[INFO] [stderr]  54 |     pub const fn west(self) -> Self {
[INFO] [stderr]     |                  ^^^^
[INFO] [stderr] ...
[INFO] [stderr]  59 |     pub const fn lsb(self) -> Connect4Square {
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] ...
[INFO] [stderr]  63 |     pub const fn msb(self) -> Connect4Square {
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] ...
[INFO] [stderr]  67 |     pub const fn popcount(self) -> u32 {
[INFO] [stderr]     |                  ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  71 |     pub fn poplsb(&mut self) -> Connect4Square {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  75 |     pub const fn any(self) -> bool {
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] ...
[INFO] [stderr]  79 |     pub const fn empty(self) -> bool {
[INFO] [stderr]     |                  ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  83 |     pub const fn multiple(self) -> bool {
[INFO] [stderr]     |                  ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  87 |     pub const fn one(self) -> bool {
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] ...
[INFO] [stderr]  91 |     pub fn set(&mut self, sq: Connect4Square) {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  95 |     pub fn toggle(&mut self, sq: Connect4Square) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  99 |     pub fn unset(&mut self, sq: Connect4Square) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 103 |     pub const fn has(self, sq: Connect4Square) -> bool {
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] ...
[INFO] [stderr] 107 |     pub const fn bit_and(self, rhs: Self) -> Self {
[INFO] [stderr]     |                  ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 111 |     pub const fn bit_or(self, rhs: Self) -> Self {
[INFO] [stderr]     |                  ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 115 |     pub const fn bit_xor(self, rhs: Self) -> Self {
[INFO] [stderr]     |                  ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 119 |     pub const fn bit_not(self) -> Self {
[INFO] [stderr]     |                  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Connect4Square` is never constructed
[INFO] [stderr]  --> src/games/connect4/square.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Connect4Square(Square<7, 7>);
[INFO] [stderr]   |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]   --> src/games/connect4/square.rs:7:18
[INFO] [stderr]    |
[INFO] [stderr]  6 | impl Connect4Square {
[INFO] [stderr]    | ------------------- associated items in this implementation
[INFO] [stderr]  7 |     pub const fn from_row_column(row: u8, column: u8) -> Self {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 12 |     pub const fn from_util_sq(sq: Square<7, 7>) -> Self {
[INFO] [stderr]    |                  ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 16 |     pub const fn from_raw(sq: u16) -> Self {
[INFO] [stderr]    |                  ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 20 |     pub const fn to_util_sq(self) -> Square<7, 7> {
[INFO] [stderr]    |                  ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub const fn value(self) -> u16 {
[INFO] [stderr]    |                  ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub const fn row(self) -> u8 {
[INFO] [stderr]    |                  ^^^
[INFO] [stderr] ...
[INFO] [stderr] 32 |     pub const fn column(self) -> u8 {
[INFO] [stderr]    |                  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `HexapawnSquare` is never used
[INFO] [stderr]   --> src/games/hexapawn.rs:11:10
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub type HexapawnSquare = Square<3, 3>;
[INFO] [stderr]    |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HexapawnMove` is never constructed
[INFO] [stderr]   --> src/games/hexapawn.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct HexapawnMove {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `HexapawnColor` is never used
[INFO] [stderr]   --> src/games/hexapawn.rs:20:10
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub enum HexapawnColor {
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `flip` is never used
[INFO] [stderr]   --> src/games/hexapawn.rs:26:12
[INFO] [stderr]    |
[INFO] [stderr] 25 | impl HexapawnColor {
[INFO] [stderr]    | ------------------ method in this implementation
[INFO] [stderr] 26 |     pub fn flip(self) -> Self {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HexapawnState` is never constructed
[INFO] [stderr]   --> src/games/hexapawn.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub struct HexapawnState {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `HexapawnBoard` is never used
[INFO] [stderr]    --> src/games/hexapawn.rs:195:10
[INFO] [stderr]     |
[INFO] [stderr] 195 | pub type HexapawnBoard = CopyMakeWrapper<HexapawnState>;
[INFO] [stderr]     |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `TicTacToeSquare` is never used
[INFO] [stderr]   --> src/games/tictactoe.rs:11:10
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub type TicTacToeSquare = Square<3, 3>;
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TicTacToeMove` is never constructed
[INFO] [stderr]   --> src/games/tictactoe.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct TicTacToeMove(TicTacToeSquare);
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `to_sq` are never used
[INFO] [stderr]   --> src/games/tictactoe.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl TicTacToeMove {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 17 |     pub fn new(sq: TicTacToeSquare) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     pub fn to_sq(self) -> TicTacToeSquare {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `TicTacToeColor` is never used
[INFO] [stderr]   --> src/games/tictactoe.rs:28:10
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub enum TicTacToeColor {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `flip` is never used
[INFO] [stderr]   --> src/games/tictactoe.rs:34:12
[INFO] [stderr]    |
[INFO] [stderr] 33 | impl TicTacToeColor {
[INFO] [stderr]    | ------------------- method in this implementation
[INFO] [stderr] 34 |     pub fn flip(self) -> Self {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Piece` is never used
[INFO] [stderr]   --> src/games/tictactoe.rs:42:6
[INFO] [stderr]    |
[INFO] [stderr] 42 | type Piece = TicTacToeColor;
[INFO] [stderr]    |      ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TicTacToeState` is never constructed
[INFO] [stderr]   --> src/games/tictactoe.rs:45:12
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub struct TicTacToeState {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `TicTacToeBoard` is never used
[INFO] [stderr]    --> src/games/tictactoe.rs:167:10
[INFO] [stderr]     |
[INFO] [stderr] 167 | pub type TicTacToeBoard = CopyMakeWrapper<TicTacToeState>;
[INFO] [stderr]     |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `perft` is never used
[INFO] [stderr]  --> src/perft.rs:6:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub fn perft<const SPLIT: bool, B: Board>(board: &mut B, depth: u32) -> u64 {
[INFO] [stderr]   |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `perft_impl` is never used
[INFO] [stderr]   --> src/perft.rs:24:4
[INFO] [stderr]    |
[INFO] [stderr] 24 | fn perft_impl<B: Board>(board: &mut B, depth: u32) -> u64 {
[INFO] [stderr]    |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `run_perft_suite_file` is never used
[INFO] [stderr]   --> src/perft.rs:38:8
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub fn run_perft_suite_file<B: Board>(filename: &str) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `run_perft_suite` is never used
[INFO] [stderr]   --> src/perft.rs:45:8
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub fn run_perft_suite<B: Board>(tests: &str) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ABSolver` is never constructed
[INFO] [stderr]  --> src/search/ab_solver.rs:7:12
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct ABSolver<B: Board> {
[INFO] [stderr]   |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `SCORE_WIN`, `new`, and `alpha_beta` are never used
[INFO] [stderr]   --> src/search/ab_solver.rs:13:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl<B: Board> ABSolver<B> {
[INFO] [stderr]    | -------------------------- associated items in this implementation
[INFO] [stderr] 13 |     const SCORE_WIN: i32 = 1000;
[INFO] [stderr]    |           ^^^^^^^^^
[INFO] [stderr] 14 |
[INFO] [stderr] 15 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     fn alpha_beta(&mut self, board: &mut B, ply: i32, mut alpha: i32, beta: i32) -> i32 {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `C4TTEntry` is never constructed
[INFO] [stderr]   --> src/search/c4_solver.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct C4TTEntry {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `adjust_from_tt` and `to_tt` are never used
[INFO] [stderr]   --> src/search/c4_solver.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl C4TTEntry {
[INFO] [stderr]    | -------------- methods in this implementation
[INFO] [stderr] 24 |     fn adjust_from_tt(&mut self, ply: i32) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |     fn to_tt(&self, ply: i32) -> Self {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Connect4Solver` is never constructed
[INFO] [stderr]   --> src/search/c4_solver.rs:42:12
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub struct Connect4Solver {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `SCORE_WIN`, `new`, `score_move`, `order_moves`, `alpha_beta`, and `clear` are never used
[INFO] [stderr]    --> src/search/c4_solver.rs:49:11
[INFO] [stderr]     |
[INFO] [stderr]  48 | impl Connect4Solver {
[INFO] [stderr]     | ------------------- associated items in this implementation
[INFO] [stderr]  49 |     const SCORE_WIN: i32 = 1000;
[INFO] [stderr]     |           ^^^^^^^^^
[INFO] [stderr]  50 |
[INFO] [stderr]  51 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  59 |     fn score_move(&mut self, board: &mut Connect4Board, mv: Connect4Move) -> i32 {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  75 |     fn order_moves(&mut self, board: &mut Connect4Board, moves: &mut ArrayVec<Connect4Move, 7>) {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  79 |     fn alpha_beta<const PV: bool>(
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 187 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `C4Benchmark` is never used
[INFO] [stderr]    --> src/search/c4_solver.rs:217:10
[INFO] [stderr]     |
[INFO] [stderr] 217 | pub enum C4Benchmark {
[INFO] [stderr]     |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `run_benchmark` is never used
[INFO] [stderr]    --> src/search/c4_solver.rs:226:8
[INFO] [stderr]     |
[INFO] [stderr] 226 | pub fn run_benchmark(benchmark: C4Benchmark) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `nodes`, `time`, `score`, and `pv` are never read
[INFO] [stderr]   --> src/search/search.rs:7:9
[INFO] [stderr]    |
[INFO] [stderr]  6 | pub struct SearchResult<B: Board> {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr]  7 |     pub nodes: u64,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]  8 |     pub time: Duration,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]  9 |     pub best_move: B::Move,
[INFO] [stderr] 10 |     pub score: i32,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 11 |     pub pv: Vec<B::Move>,
[INFO] [stderr]    |         ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SearchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `max_nodes` is never read
[INFO] [stderr]   --> src/search/search.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct SearchLimits {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] 16 |     pub max_nodes: Option<u64>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SearchLimits` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `clear` is never used
[INFO] [stderr]   --> src/search/search.rs:23:8
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub trait Search<B: Board> {
[INFO] [stderr]    |           ------ method in this trait
[INFO] [stderr] 22 |     fn search(&mut self, board: &B, limits: SearchLimits) -> SearchResult<B>;
[INFO] [stderr] 23 |     fn clear(&mut self) {}
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `adjust_from_tt` and `to_tt` are never used
[INFO] [stderr]   --> src/search/three_check.rs:29:8
[INFO] [stderr]    |
[INFO] [stderr] 28 | impl TTEntry {
[INFO] [stderr]    | ------------ methods in this implementation
[INFO] [stderr] 29 |     fn adjust_from_tt(&mut self, ply: i32) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     fn to_tt(&self, ply: i32) -> Self {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `decisive_score_from_tt` is never used
[INFO] [stderr]   --> src/search/tt.rs:62:8
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub fn decisive_score_from_tt(score: i32, ply: i32) -> i32 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `decisive_score_to_tt` is never used
[INFO] [stderr]   --> src/search/tt.rs:66:8
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub fn decisive_score_to_tt(score: i32, ply: i32) -> i32 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_fen_pieces` is never used
[INFO] [stderr]  --> src/util/fen_parsing.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn parse_fen_pieces<Piece, F>(
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `murmur_hash3` is never used
[INFO] [stderr]  --> src/util/hash.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub const fn murmur_hash3(mut key: u64) -> u64 {
[INFO] [stderr]   |              ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hash_combine` is never used
[INFO] [stderr]   --> src/util/hash.rs:11:14
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub const fn hash_combine(lhs: u64, rhs: u64) -> u64 {
[INFO] [stderr]    |              ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `calamity` (bin "calamity" test) generated 72 warnings (run `cargo fix --bin "calamity" -p calamity --tests` to apply 6 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/calamity-286186d32375e65e)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "0b2ef36323f61a56f4c63764d762acb79a8a733a0518e2c94058989196cabf72", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0b2ef36323f61a56f4c63764d762acb79a8a733a0518e2c94058989196cabf72", kill_on_drop: false }`
[INFO] [stdout] 0b2ef36323f61a56f4c63764d762acb79a8a733a0518e2c94058989196cabf72
